package com.songtech.auth.resource.service;

import java.util.List;

import com.songtech.auth.resource.model.Resources;

public interface ResourceService {
	/**
	 * 新增资源
	 * @param resource
	 * @return
	 */
	public int addResource(Resources resource);
	
	/**
	 * 通过资源ID，查询资源信息
	 * @param resId
	 * @return
	 */
	public Resources queryResById(String resId);
	/**
	 * 查询所有资源
	 * @return
	 */
	public List<Resources> queryAllResources();
	/**
	 * 根据条件查询资源
	 * @param res
	 * @return
	 */
	public List<Resources> queryResources(Resources res);
	/**
	 * 根据资源ID，查询该资源的所有子资源
	 * @param resId
	 * @return
	 */
	public List<Resources> queryResourcesByPid(String resId);
	/**
	 * 停用资源
	 * @param resId
	 * @return
	 */
	public int disabledResource(String resId);
	/**
	 * 启用资源
	 * @param resId
	 * @return
	 */
	public int enabledResource(String resId);
	/**
	 * 删除资源(逻辑删除)
	 * @param resId
	 * @return
	 */
	public int deleteResource(String resId);
	/**
	 * 根据ID修改资源信息，只更新有值的字段
	 * @param res
	 * @return
	 */
	public int update(Resources res);
	/**
	 * 根据ID修改资源信息，更新所有字段，没值的会被置空
	 * @param res
	 * @return
	 */
	public int updateResource(Resources res);
	/**
	 * 根据pid和pcode查询 下一个code
	 * @param PId
	 * @param PCode
	 * @return
	 */
	public String getResourceCode(String PId, String PCode);
	/**
	 * 根据资源ID，查询以它为根节点的资源树
	 * @param resId
	 * @return
	 */
	public List<Resources> getResourceById(String resId);
}
